home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-01 / cuj9205.zip / 1005086A < prev    next >
Text File  |  1992-06-02  |  1KB  |  52 lines

  1.  
  2. Listing 1
  3.  
  4. //
  5. // rational.h
  6. //
  7. #include <stdio.h>
  8.  
  9. class rational
  10.     {
  11. public:
  12.     rational() { }
  13.     rational(long n) : num(n), denom(1) { }
  14.     rational(long n, long d) : num(n), denom(d) { }
  15.     rational &operator+=(rational r);
  16.     rational &operator-=(rational r);
  17.     rational &operator*=(rational r);
  18.     rational &operator/=(rational r);
  19.     rational operator+() { return *this; }
  20.     rational operator-();
  21.     rational operator++() { return *this += 1; }
  22.     rational operator--() { return *this -= 1; }
  23.     rational operator++(int);
  24.     rational operator--(int);
  25.     void put(FILE *);
  26. private:
  27.     long num, denom;
  28.     void simplify();
  29.     };
  30.  
  31. inline rational operator+(rational r1, rational r2)
  32.     {
  33.     return r1 += r2;
  34.     }
  35.  
  36. inline rational operator-(rational r1, rational r2)
  37.     {
  38.     return r1 -= r2;
  39.     }
  40.  
  41. inline rational operator*(rational r1, rational r2)
  42.     {
  43.     return r1 *= r2;
  44.     }
  45.  
  46. inline rational operator/(rational r1, rational r2)
  47.     {
  48.     return r1 /= r2;
  49.     }
  50.  
  51.  
  52.